Skip to content

Get provisioning profile versions list
Stable

Request

⚠️ Apple devices only.

Retrieve a paginated list of all uploaded versions of a specific iOS provisioning profile, ordered by expiration date descending. Each version corresponds to a separate .mobileprovision file upload made for the same App ID. Results include Apple-extracted metadata (UUID, expiration date, entitlements, platforms, developer certificates) and a signed download_url for the version file. Results default to 10 per page and support search by version name.

About List Provisioning Profile Versions

Esper allows multiple versions of a provisioning profile to exist under a single profile record (shared App ID), reflecting real-world scenarios where profiles are renewed or updated over time. This endpoint surfaces that version history in descending expiration order — most recent first — making it straightforward to identify which version is current and which are expired. Version IDs retrieved here are used when attaching a specific version to a blueprint or when deleting an obsolete version.

Key Fields / Query Parameters

id (path, required) — Esper UUID of the parent provisioning profile

limit — Max results per page; defaults to 10

offset — Records to skip for pagination; defaults to 0

search — Search within version names

expiration_date (response) — When this version expires; results are ordered by this field descending

uuid (response) — Apple's own UUID for this profile version, distinct from Esper's internal id

provisions_all_devices (response) — true for enterprise profiles that provision all devices without explicit device registration

sha256_hash (response) — Hash of the file, used for duplicate detection on upload

Common Use Cases

Reviewing the version history of a profile to confirm which version is currently active in a blueprint

Identifying expired versions to clean up via the delete endpoint

Retrieving a specific version_id needed to fetch or delete an individual version

Best Practices

Versions are ordered by expiration_date descending; the first result is the most recently expiring (current) version

Use sha256_hash to detect duplicate uploads before uploading a new version

When renewing profiles, upload the new version first, update the blueprint to reference the new version, then delete the old version

Security
apps_management_apiKey
Path
idstring, (uuid)required

Unique identifier for the provisioning profile

Query
limitnumber

Maximum number of provisioning profile versions to return

Default:10
offsetnumber

Number of provisioning profile versions to skip

Default:0
searchstring

Search in provisioning profile version names

cURL
curl -i -X GET \
  'https://api.esper.io/_mock/openapi/v2/provisioning-profiles/{id}/versions?limit=10&offset=0&search=string' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

Success

Bodyapplication/json
contentobject
Response
{ "content": { "count": 0, "prev": "string", "next": "string", "results": [ … ] } }